<?php

// 用户类

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB;
use Session;


class UserController extends Controller
{
	/**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
	 
	// 添加前台用户页面
	public function adduser()
	{
		// 开始
		// 获取路由
		$route_array = request()->route()->getAction();
		$controller = explode("\\",$route_array['controller']);
		$result = explode("@",$controller[3]);
		// 控制器 	$result[0];
		// 方法 	$result[1];
		$auth_final = '';
		foreach( Session::get('auths') as $key=> $auth_info )
		{
			// 符合条件
			if( $auth_info['controller']==$result[0] && $auth_info['func']==$result[1] )
			{
				$auth_final = true;
				break;
			}else
			{
				$auth_final = false;
			}
		} 
		// 权限验证失败
		if( !$auth_final )
		{
			return redirect('/')->with( ['authinfo'=>'没有此项权限'] );
		}
		// 结尾
		
		return view('user.adduser');
	}
	
	// 执行 添加前台 用户
	public function doadduser( Request $request )
	{
		// 接收 注册信息
		$data = $request -> except('_token');
		
		// 账号 名称 为空
		if( empty($data['name']) )
		{
			$this -> show_msg('请输入账号');
		}else
		{
			// 查询 账号 是否已注册
			$user = DB::table('user')
					-> where( 'name','=',$data['name'] )
					-> first();
			if( !empty($user) )
			{
				$this -> show_msg('账号已存在，请更换账号名');
			}
		}
		
		
		// 电话 为空
		if( empty($data['phone']) )
		{
			$this -> show_msg('请输入手机号码');
		}else
		{
			// 查询 电话是否已注册
			$user = DB::table('user')
					-> where('phone','=',$data['phone'])
					-> first();
			if( !empty($user) )
			{
				$this -> show_msg('该手机号已经注册');
			}
		}
		
		
		// 密码 为空
		if( empty($data['pass']) )
		{
			$this -> show_msg('请输入密码');
		}
		// 确认密码
		if( empty($data['repass']) )
		{
			$this -> show_msg('请输入确认密码');
		}
		
		
		if( $data['pass']!= $data['repass'] )
		{
			$this -> show_msg('两次密码输入不一致');
		}
		
		
		// 加 密
		$data['pass'] = md5($data['pass']);
		$data['regtime']=date('Y-m-d H:i:s',time());
		$data['lasttime']=date('Y-m-d H:i:s',time());
		$data['pic_url']="/images/moren.jpg";
		unset( $data['repass'] );
		
		// 插入
		$insert_id = DB::table('user')->insertGetId($data);
		
		if( $insert_id )
		{
			$this -> show_msg('注册成功');
		}else
		{
			$this -> show_msg('注册失败');
		}
		
	}
	
	

	// 用户 列表 
	public function index(Request $request)
	{
        // 开始
        // 获取路由
        $route_array = request()->route()->getAction();
        $controller = explode("\\",$route_array['controller']);
        $result = explode("@",$controller[3]);
        // 控制器 	$result[0];
        // 方法 	$result[1];
        $auth_final = '';
        foreach( Session::get('auths') as $key=> $auth_info )
        {
            // 符合条件
            if( $auth_info['controller']==$result[0] && $auth_info['func']==$result[1] )
            {
                $auth_final = true;
                break;
            }else
            {
                $auth_final = false;
            }
        }
        // 权限验证失败
        if( !$auth_final )
        {
            return redirect('/')->with( ['authinfo'=>'没有此项权限'] );
        }
        // 结尾
		// 获取路由
		$route_array = request()->route()->getAction();
		$controller = explode("\\",$route_array['controller']);
		$result = explode("@",$controller[3]);
		// 控制器 	$result[0];
		// 方法 	$result[1];
		$auth_final = '';
		foreach( Session::get('auths') as $key=> $auth_info )
		{
			// 符合条件
			if( $auth_info['controller']==$result[0] && $auth_info['func']==$result[1] )
			{
				$auth_final = true;
				break;
			}else
			{
				$auth_final = false;
			}
		} 
		// 权限验证失败
		if( !$auth_final )
		{
			return redirect('/')->with( ['authinfo'=>'没有此项权限'] );
		}
	
		// 搜索关键字 没有 默认为空
		$keyword = $request -> input('keyword',"");
		if( empty($keyword) ){
			// 为空 说明没有搜索
			// 查询所有用户 每页20条数据
			$users = DB::table('user as u') 
					->select( "u.*",DB::raw("case when u.status=1 then '正常' when u.status=2 then '已冻结' end as statusInfo") )
					->orderBy( 'id','desc' ) 
					->paginate(20);
		}else
		{
				
			// 查询所有用户 每页20条数据
			$users = DB::table('user as u') 
					->select( "u.*",DB::raw("case when u.status=1 then '正常' when u.status=2 then '已冻结' end as statusInfo") )
					->where('u.phone','=',$keyword ) 
					->orWhere('u.name','like','%'.$keyword.'%' ) 
					->orderBy( 'id','desc' ) 
					->paginate(20);
		}
		
		
		
		return view( 'user.list',[ 'users'=>$users,'request'=>$keyword ] );
	}
	
	
	// 冻结 操作
	public function freeze( $user_id,Request $request )
	{
		// 包含状态
		$data = $request -> except('_token');
        $res  = DB::table('user')
					-> where('id',$user_id)
					-> update( $data );
		if($res)
		{
			// 修改成功
			$this -> show_msg('冻结成功');
		}else
		{
			$this -> show_msg('冻结失败');
		}
	}
	
	
}
